package com.cskaoyan.javase.array._4notice;

/**
 * 两个注意事项:
 *      1.数组的长度不可变,指的是数组一旦被创建,数组对象的长度不可变
 *          但不意味着数组的引用不可变
 *
 *      2.长度为0的数组的一个用途
 *
 * @since 17:22
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        /*
            当arr引用指向一个新的长度为4的数组对象时
            原先的老数组就没有引用指向它了
            这种对象,就没有办法再访问到了,就成为"垃圾"了
            需要等待GC进行垃圾回收
         */
        int[] arr = new int[3];
        // 引用是可变的,是可以指向新的数组对象的
        arr = new int[4];

        // 如果数组的引用等于null,那么直接打印这个引用,会报错吗?
        // 不会,因为这里没有操作对象
        arr = null;
        System.out.println(arr);
    }

    /*
        需求: 该方法会根据传入num的数值大小,给出不同的结果:
            1.如果num>0,给出[1,2]两个结果
            2.如果num<0,给出[1]这一个结果
            3.如果num=0,没有任何结果返回
      */
    public static int[] getResult(int num) {
        int[] result;
        if (num > 0) {
            result = new int[]{1, 2};
            return result;
        }
        if (num < 0) {
            result = new int[]{1};
            return result;
        }
        /*
            表示数组没有结果,可以有两个选择:
                1.null
                2.长度为0的数组
         */
        // return null;
        result = new int[0];
        return result;
    }
}
